#ifndef VECTOR2D_H
#define VECTOR2D_H

#include <math.h>

class Vector2D
{
	public:
		//Constructor for initializing the Vector class
		Vector2D(float x = 0.0f, float y = 0.0f);

		//Copy Constructor for Initializing the Vector class
		Vector2D(const Vector2D& v);

		//Destructor for the Vector
		~Vector2D();

		//Returns the magnitude of the Vector
		float	Length(void);

		//Normalize the vector for operation
		void	Normalize(void);

		//Inverse of the Vector to change direction
		void	Reverse(void);

		//Operator Overloading

		//Basic Vector Addition 
		Vector2D operator+(const Vector2D& v);

		//Basic Vector Subtraction
		Vector2D operator-(const Vector2D& v);

		//Basic Vector Cross Product
		float	 operator*(const Vector2D& v);

		//Basic Vector Dot Procduct
		Vector2D operator^(const Vector2D& v);

		//Compound Operators
		
		Vector2D operator+=(const Vector2D& v);

		Vector2D operator-=(const Vector2D& v);

		Vector2D operator*=(const float& s);

		Vector2D operator^=(const Vector2D& v);

		Vector2D operator/=(const Vector2D& v);


	private:
		//Holds the information regarding dimensional points
		float x;
		float y;
};
#endif